#pragma once

#include "topcvt_exception.hpp"
#include "topcvt_unpack.hpp"
#include "topcvt_pack.hpp"

namespace topcvt
{
	class PresufUnpack : public UnpackImp
	{
		ByteBuffer m_pre_suffix_buffer;
	public:
		PresufUnpack(ByteBuffer& message)
			: UnpackImp(message)
		{}
		void checkElementCfgValid(AttributeableCfg& t) override;
        PolicyContext& unpackPolicy(PolicyContext& ctx, PolicyCfg& policyCfg) override;
		string unpackField(pugi::xml_node& node, FieldCfg& f, PolicyContext& ctx) override;
		void check(AttributeableCfg& t);
		void unpackPolicy(pugi::xml_node& node, PolicyCfg& cfg, PolicyContext& ctx, ByteBuffer& message) override;
	};

    class  PresufPack : public  PackImp
    {
    public:
        void packField(pugi::xml_node& node, FieldCfg& f,PolicyContext& ctx)
        {
        };
    };    

};